@[toc]
环境
Windows10
GO:1.13
前期设置
不同版本开启GO module
1.11和1.12版本
将下面两个设置添加到系统的环境变量中
| 1 | GO111MODULE=on | 
1.13版本之后
需要注意的是这种方式并不会覆盖之前的配置,有点坑,你需要先把之前的给删掉再设置
| 1 | go env -w GO111MODULE=on | 
goLand开启 go mod

go get使用
使用go module之后,go get 拉取依赖的方式就发生了变化
- 拉取最新的版本(优先择取 tag) - 1 - go get golang.org/x/text@latest 
- 拉取 master 分支的最新 commit - 1 - go get golang.org/x/text@master 
- 拉取 tag 为 v0.3.2 的 commit - 1 - go get golang.org/x/text@v0.3.2 
- 拉取 hash 为 342b231 的 commit,最终会被转换为 v0.3.2: - 1 - go get golang.org/x/text@342b2e 
- 更新 - 1 - go get -u 
其它基本操作
- 初始化一个moudle,模块名为你项目名 - 1 - go mod init 模块名 
- 下载modules到本地cache - 目前所有模块版本数据均缓存在 - $GOPATH/pkg/mod和 - $GOPATH/pkg/sum下- 1 - go mod download 
- 编辑go.mod文件 
 选项有- -json、- -require和- -exclude,可以使用帮助go help mod edit- 1 - go mod edit 
- 以文本模式打印模块需求图 - 1 - go mod graph 
- 删除错误或者不使用的modules - 1 - go mod tidy 
- 生成vendor目录 - 1 - go mod vendor 
- 验证依赖是否正确 - 1 - go mod verify 
- 查找依赖 - 1 - go mod why 
高级操作
- 更新到最新版本1 go get github.com/gogf/gf@version 
如果没有指明 version 的情况下,则默认先下载打了 tag 的 release 版本,比如 v0.4.5 或者 v1.2.3;如果没有 release 版本,则下载最新的 pre release 版本,比如 v0.0.1-pre1。如果还没有则下载最新的 commit
- 更新到最新的修订版(只改bug的版本)
| 1 | go get -u=patch github.com/gogf/gf | 
- 替代只能翻墙下载的库 - 1 
 2- go mod edit -replace=golang.org/x/crypto@v0.0.0=github.com/golang/crypto@latest 
 go mod edit -replace=golang.org/x/sys@v0.0.0=github.com/golang/sys@latest
- 清理moudle 缓存 - 1 - go clean -modcache 
- 查看可下载版本 - 1 - go list -m -versions github.com/gogf/gf